[レポート] 複数IDプロバイダーをAmazon Qと統合するCognitoとIAM Identity CenterのTrusted Identity Propagation(信頼されたアイデンティティの伝播) #AWSreInvent
こんにちは、ゲーソルの新屋です。
re:Invent2024のセッションレポートをお届けします。
セッション情報
タイトル
- SEC309 | AWS IAM Identity Center: Secure access to generative AI applications
セッションタイプ
- Workshop
スピーカー
- Laura Reith, Sr Solutions Architect, Amazon Web Services
- Roberto Migli, Principal Solutions Architect, AWS
セッション概要
Integrating an identity-aware generative AI-powered assistant into a custom web experience for your workforce has never been easier. In this workshop, learn how to embed an identity-aware chat experience into a custom application, train it on a sample dataset, and connect it to an external workforce identity provider using native integration between Amazon Q Business and AWS IAM Identity Center. Throughout the process, learn tips on managing end-user session duration, enhancing security, and simplifying the overall developer experience. You must bring your laptop to participate.
アイデンティティを意識した生成的なAIアシスタントを、従業員向けのカスタムWebエクスペリエンスに統合することが、かつてないほど簡単になりました。このワークショップでは、Amazon Q BusinessとAWS IAM Identity Center間のネイティブ統合を使用して、ID認識チャット体験をカスタムアプリケーションに組み込み、サンプルデータセットでそれを訓練し、外部のワークフォースIDプロバイダに接続する方法を学びます。このプロセスを通じて、エンドユーザーのセッション時間の管理、セキュリティの強化、開発者の全体的なエクスペリエンスの簡素化に関するヒントを学びます。参加にはノートパソコンが必要です。
内容
本セッションはWorkshop形式で進行し、最終的には以下の構成を完成させました。
この構成の要点
- 自前のフロントエンドアプリからAmazon Q Businessが使える
- Amazon Q Businessは、標準だとAWSコンソールのWebUIからアクセスする
- IAM Identity Centerと任意のIdPをOAuth 2.0に基づくトークン発行サーバーとして信頼できる
- よくあるSAML統合では無い
考えられるユースケース
この構成で考えられるユースケースは
カスタムアプリケーションの認証
- ユースケース
- Cognitoは、Webアプリケーションやモバイルアプリなどのカスタムアプリケーションに対して、ユーザー認証と認可を提供する。
- IAM Identity Centerは主にAWSリソースへのアクセスを管理するため、カスタムアプリケーションの認証には直接対応しない。
- メリット
- Cognitoを使用することで、カスタムアプリケーションの認証基盤を構築しつつ、IAM Identity Centerと統合してAWSリソースへのアクセスも統一的に管理できる。
- 例えば、Amazon Q Businessのようなデータ分析アプリケーションをカスタムWebアプリケーションに統合する場合、Cognitoを通じて認証を行い、IAM Identity Centerを介してAWSリソースにアクセスすることが可能に。
複数のIDプロバイダーの統合
- ユースケース
- Cognitoは、OpenID Connect(OIDC)やSAMLを介して複数の外部IdP(例:Okta、Google、Facebook)と統合できる。
- これにより、複数のIdPを統一的に管理し、それらを1つのユーザープールに集約できる。
- メリット
- たとえば、社内ユーザーはEntra IDを使い、外部パートナーはGoogleアカウントを使う、といった異なるIdPを利用するユーザーを1つのCognitoユーザープールで管理できるようになる。
- IAM Identity Centerでは1つの外部IdP(SAML)にしか接続できないため、この柔軟性は大きな差別化ポイント。
そもそもAmazon Q Businessとは
Amazon Q Businessは、生成 AI を活用したアシスタントで、企業のシステム内のデータや情報に基づいて、質問への回答、要約の提供、コンテンツの生成、およびタスクの安全な実行を行うことができます。
Amazon Q のデータソースとして、さまざまなエンタープライズサービスを統合することができるのですが、re:Invent2024で新たな統合がいくつか発表されました。
Trusted identity propagation
このフローを「Trusted identity propagation(信頼されたアイデンティティの伝播)」と呼びます。
これはAWS固有の用語です。
- ユーザーがWebアプリケーションにアクセス
- ユーザーはブラウザやモバイルアプリを通じてWebアプリケーションにサインインする。
- WebアプリケーションがIdentity Provider(IdP)を利用して認証
- Webアプリケーションは、Amazon CognitoなどのIdPを使用してユーザーを認証する。
- IdPはOAuth 2.0を利用してアクセストークンを発行する。
- トークンの検証とIAM Identity Centerの統合
- WebアプリケーションはIdPから取得したトークンをIAM Identity Centerに送信する。
- IAM Identity Centerはトークンを検証し、必要に応じてSCIMプロトコルを使用してユーザー情報を同期する。
- AWS STSによる一時的なIAMロールセッションの取得
- IAM Identity Centerは、AWS Security Token Service(STS)を使用して一時的なIAMロールセッションを作成する。このセッションには、ユーザーのアイデンティティ情報が含まれる。
- Trusted Identity Propagationの実行
- IAM Identity Centerから取得したトークンとロールセッションを使用して、AWSリソースやサービス間でユーザーのアイデンティティ情報を安全に伝播する。
- IAMフェデレーションとロールの引き受け
- アプリケーションは IAM ロールを引き受け、IAM Identity Center トークンを使用してコンテキストを設定する。
- リソースへのアクセスと監査
- アプリケーションがAWSサービスにリクエストを送信すると、IAM Identity Centerでの認証情報が使用される。
- CloudTrailにより、ユーザーのアイデンティティやアクションがログに記録され、監査やトラブルシューティングが可能になる。
感想
CognitoがIAM Identity Centerと統合する上で複数IDプロバイダーのブリッジとできる構成には驚きました。たぶん、Cognito以外、例えばAuth0でも同じ構成が取れそうなので試してみようと思います。
参考リンク
Trusted identity propagation
How to implement trusted identity propagation for applications protected by Amazon Cognito